<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES查询优化策略 - 技术小馆</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Heiti SC", "Hiragino Sans GB", Simsun, sans-serif;
            color: #333;
            line-height: 1.6;
        }
        h1, h2, h3, h4, h5, h6 {
            font-family: 'Noto Serif SC', serif;
            font-weight: 600;
            color: #111;
        }
        .hero-gradient {
            background: linear-gradient(135deg, #6e48aa 0%, #9d50bb 100%);
        }
        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
        }
        .highlight {
            position: relative;
        }
        .highlight::after {
            content: '';
            position: absolute;
            bottom: -2px;
            left: 0;
            width: 100%;
            height: 8px;
            background: rgba(110, 72, 170, 0.2);
            z-index: -1;
            transition: all 0.3s ease;
        }
        .highlight:hover::after {
            height: 14px;
            background: rgba(110, 72, 170, 0.3);
        }
        .drop-cap::first-letter {
            float: left;
            font-size: 3.5em;
            line-height: 0.8;
            margin-right: 0.1em;
            color: #6e48aa;
            font-weight: bold;
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- Hero Section -->
    <section class="hero-gradient text-white py-20 px-4 md:py-32">
        <div class="container mx-auto max-w-6xl">
            <div class="flex flex-col md:flex-row items-center">
                <div class="md:w-1/2 mb-10 md:mb-0">
                    <h1 class="text-4xl md:text-5xl font-bold mb-6 leading-tight">Elasticsearch <br>查询优化策略</h1>
                    <p class="text-xl md:text-2xl opacity-90 mb-8">探索高效数据检索的艺术与科学</p>
                    <div class="flex space-x-4">
                        <a href="#content" class="bg-white text-purple-800 px-6 py-3 rounded-lg font-medium hover:bg-opacity-90 transition duration-300 transform hover:scale-105">
                            <i class="fas fa-book-open mr-2"></i>开始阅读
                        </a>
                        <a href="#diagram" class="bg-transparent border-2 border-white px-6 py-3 rounded-lg font-medium hover:bg-white hover:bg-opacity-10 transition duration-300">
                            <i class="fas fa-project-diagram mr-2"></i>查看图表
                        </a>
                    </div>
                </div>
                <div class="md:w-1/2">
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1729308140686-3e228e2a-e2d3-4d6b-aa1d-3278835df161.png" alt="Elasticsearch可视化" class="rounded-xl shadow-2xl border-4 border-white border-opacity-20 w-full object-cover">
                </div>
            </div>
        </div>
    </section>

    <!-- Main Content -->
    <main class="container mx-auto max-w-6xl px-4 py-12">
        <!-- Introduction Section -->
        <section id="content" class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">ES中的查询优化策略</h2>
            </div>
            <div class="bg-white rounded-xl shadow-md p-8 mb-8 card-hover transition duration-300">
                <p class="drop-cap text-lg leading-relaxed mb-4">
                    在现代应用中，数据的查询效率直接影响到系统的性能和用户体验。Elasticsearch（ES）作为一个强大的搜索引擎，设计之初便考虑到了高效的数据查询能力。然而，随着数据量的增加和查询复杂度的提升，仅依靠基础的查询功能可能无法满足我们的需求。
                </p>
                <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1729308140686-3e228e2a-e2d3-4d6b-aa1d-3278835df161.png" alt="ES查询架构" class="w-full rounded-lg my-8">
                <p class="text-lg leading-relaxed">
                    Elasticsearch中的查询优化策略，重点关注缓存、过滤器和并行查询的使用。查询缓存是提高查询效率的关键技术，它能够显著减少重复查询的开销；而过滤器则通过高效地筛选数据，避免不必要的计算，从而进一步提升性能。最后，通过并行查询，我们可以充分利用Elasticsearch的分布式特性，实现更快的数据检索。
                </p>
            </div>
        </section>

        <!-- Importance Section -->
        <section class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">查询优化的重要性</h2>
            </div>
            <div class="grid md:grid-cols-2 gap-8">
                <div class="bg-white rounded-xl shadow-md p-8 card-hover transition duration-300">
                    <h3 class="text-2xl font-semibold mb-4 flex items-center">
                        <i class="fas fa-tachometer-alt text-purple-600 mr-3"></i>性能提升
                    </h3>
                    <p class="text-gray-700 leading-relaxed">
                        查询优化在现代数据库和搜索引擎中至关重要，尤其是在处理大规模数据集时。随着数据量的激增和用户对实时响应的期望，优化查询不仅关系到系统的性能，还直接影响用户体验和业务效率。查询优化能够显著提升系统的响应时间。
                    </p>
                </div>
                <div class="bg-white rounded-xl shadow-md p-8 card-hover transition duration-300">
                    <h3 class="text-2xl font-semibold mb-4 flex items-center">
                        <i class="fas fa-server text-purple-600 mr-3"></i>资源优化
                    </h3>
                    <p class="text-gray-700 leading-relaxed">
                        优化查询还可以减少系统资源的消耗。高效的查询能降低CPU和内存的使用，减少I/O操作，从而节省硬件成本和运营开销。在大规模应用中，这种优化的影响尤为显著，能显著提高系统的整体吞吐量。
                    </p>
                </div>
                <div class="md:col-span-2">
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1729308187246-eeecbb94-bab7-4c73-91a2-4af023b21b69.png" alt="查询优化重要性" class="w-full rounded-lg">
                </div>
            </div>
        </section>

        <!-- Query Cache Section -->
        <section class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">查询缓存</h2>
            </div>
            <div class="bg-white rounded-xl shadow-md overflow-hidden">
                <div class="md:flex">
                    <div class="md:w-1/3 bg-purple-50 p-8">
                        <h3 class="text-2xl font-semibold mb-4 text-purple-800">缓存类型</h3>
                        <ul class="space-y-4">
                            <li class="flex items-start">
                                <i class="fas fa-check-circle text-purple-600 mt-1 mr-2"></i>
                                <span><strong>查询结果缓存</strong>：存储完整的查询结果</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-check-circle text-purple-600 mt-1 mr-2"></i>
                                <span><strong>过滤器缓存</strong>：存储过滤条件的结果</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-check-circle text-purple-600 mt-1 mr-2"></i>
                                <span><strong>字段数据缓存</strong>：加速字段检索</span>
                            </li>
                        </ul>
                    </div>
                    <div class="md:w-2/3 p-8">
                        <div class="mb-8">
                            <h3 class="text-2xl font-semibold mb-4">工作原理</h3>
                            <p class="text-gray-700 leading-relaxed">
                                在Elasticsearch中，当一个查询被执行时，系统首先检查缓存中是否已有相同的查询结果。如果缓存命中，系统可以直接返回结果，极大地减少了查询时间和资源消耗。这种缓存机制主要依赖于Elasticsearch的分布式架构，确保每个节点都能有效管理自己的缓存。
                            </p>
                        </div>
                        <div>
                            <h3 class="text-2xl font-semibold mb-4">优化建议</h3>
                            <p class="text-gray-700 leading-relaxed mb-4">
                                查询缓存的有效性依赖于查询的稳定性和一致性。频繁变化的数据会导致缓存失效，因此在高频更新的场景中，缓存的命中率可能降低。为了最大化缓存效益，开发者应设计稳定的查询，并适当使用过滤器以减少数据变动的影响。
                            </p>
                            <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1729308233328-48d38a42-067a-41b2-9e20-e323e3981c15.png" alt="查询缓存" class="w-full rounded-lg">
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- Filter Section -->
        <section class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">过滤器的使用</h2>
            </div>
            <div class="bg-white rounded-xl shadow-md p-8 card-hover transition duration-300 mb-8">
                <p class="text-lg leading-relaxed">
                    在Elasticsearch中，过滤器是一种用于精确限制查询结果的机制，它们在性能优化和结果准确性方面发挥着重要作用。相较于查询，过滤器不会影响评分，因而在许多场景下，使用过滤器可以提升查询性能和响应速度。
                </p>
            </div>
            <div class="grid md:grid-cols-2 gap-8">
                <div>
                    <h3 class="text-2xl font-semibold mb-4 flex items-center">
                        <i class="fas fa-filter text-purple-600 mr-3"></i>过滤器类型
                    </h3>
                    <ul class="space-y-4">
                        <li class="bg-purple-50 p-4 rounded-lg">
                            <h4 class="font-semibold text-purple-700 mb-2">布尔过滤器</h4>
                            <p class="text-gray-700">允许结合多个条件，通过must、should和must_not等组合实现复杂的过滤逻辑</p>
                        </li>
                        <li class="bg-purple-50 p-4 rounded-lg">
                            <h4 class="font-semibold text-purple-700 mb-2">范围过滤器</h4>
                            <p class="text-gray-700">用于限制字段值在某个范围内，适合数值、日期等类型的字段</p>
                        </li>
                        <li class="bg-purple-50 p-4 rounded-lg">
                            <h4 class="font-semibold text-purple-700 mb-2">术语过滤器</h4>
                            <p class="text-gray-700">用于精确匹配某个字段的具体值，非常适合用于过滤分类、状态等离散型数据</p>
                        </li>
                    </ul>
                </div>
                <div>
                    <h3 class="text-2xl font-semibold mb-4 flex items-center">
                        <i class="fas fa-bolt text-purple-600 mr-3"></i>性能优势
                    </h3>
                    <div class="bg-purple-50 p-6 rounded-lg h-full">
                        <p class="text-gray-700 mb-4">
                            使用过滤器的主要优势在于它们能够显著提升查询性能。由于过滤器只关注文档是否匹配条件，而不涉及评分计算，系统可以更快地执行查询。
                        </p>
                        <p class="text-gray-700 mb-4">
                            过滤器的结果可以被缓存，尤其是在数据更新不频繁的情况下，可以显著减少后续查询的响应时间。
                        </p>
                        <div class="bg-white p-4 rounded-lg">
                            <h4 class="font-semibold text-purple-700 mb-2">使用场景</h4>
                            <ul class="list-disc pl-5 space-y-2 text-gray-700">
                                <li>安全控制：根据用户角色限制可访问的数据</li>
                                <li>多租户架构：不同用户仅能访问自己的数据子集</li>
                                <li>实时数据分析：在聚合查询中提高数据处理效率</li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- Parallel Query Section -->
        <section class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">并行查询</h2>
            </div>
            <div class="bg-white rounded-xl shadow-md p-8 card-hover transition duration-300 mb-8">
                <p class="text-lg leading-relaxed">
                    并行查询是Elasticsearch中提升查询性能的重要策略之一，通过充分利用集群的分布式特性，实现对查询请求的高效处理。并行查询的核心在于将查询任务分解，并同时在多个节点上执行，从而加快整体响应时间。
                </p>
            </div>
            <div class="grid md:grid-cols-3 gap-8 mb-8">
                <div class="bg-white rounded-xl shadow-md p-6 card-hover transition duration-300">
                    <div class="text-5xl text-purple-600 mb-4">
                        <i class="fas fa-network-wired"></i>
                    </div>
                    <h3 class="text-xl font-semibold mb-3">请求分发</h3>
                    <p class="text-gray-700">Elasticsearch将查询请求发送到集群中的多个节点，每个节点处理特定的分片</p>
                </div>
                <div class="bg-white rounded-xl shadow-md p-6 card-hover transition duration-300">
                    <div class="text-5xl text-purple-600 mb-4">
                        <i class="fas fa-tasks"></i>
                    </div>
                    <h3 class="text-xl font-semibold mb-3">并行执行</h3>
                    <p class="text-gray-700">每个节点独立处理其负责的分片，多个节点可以并行工作</p>
                </div>
                <div class="bg-white rounded-xl shadow-md p-6 card-hover transition duration-300">
                    <div class="text-5xl text-purple-600 mb-4">
                        <i class="fas fa-object-group"></i>
                    </div>
                    <h3 class="text-xl font-semibold mb-3">结果聚合</h3>
                    <p class="text-gray-700">协调节点将各个分片的结果合并、排序，返回最终结果</p>
                </div>
            </div>
            <div class="bg-purple-50 rounded-xl p-8">
                <h3 class="text-2xl font-semibold mb-4">并行查询策略</h3>
                <div class="grid md:grid-cols-2 gap-6">
                    <div>
                        <h4 class="font-semibold text-purple-700 mb-2 flex items-center">
                            <i class="fas fa-sliders-h mr-2"></i>分片设计
                        </h4>
                        <p class="text-gray-700">在创建索引时，合理设置分片数量。过少的分片会导致查询时无法充分利用资源，过多的分片则会增加管理开销。</p>
                    </div>
                    <div>
                        <h4 class="font-semibold text-purple-700 mb-2 flex items-center">
                            <i class="fas fa-search mr-2"></i>查询优化
                        </h4>
                        <p class="text-gray-700">在发起查询时，使用过滤器而非查询条件，以减少需要评分的文档数量，提升并行处理的效率。</p>
                    </div>
                    <div>
                        <h4 class="font-semibold text-purple-700 mb-2 flex items-center">
                            <i class="fas fa-heartbeat mr-2"></i>集群监控
                        </h4>
                        <p class="text-gray-700">定期监控集群的健康状态，确保所有节点均正常工作。对于出现故障的节点，及时进行修复或替换。</p>
                    </div>
                    <div>
                        <h4 class="font-semibold text-purple-700 mb-2 flex items-center">
                            <i class="fas fa-scroll mr-2"></i>使用Scroll API
                        </h4>
                        <p class="text-gray-700">对于大规模数据的查询，可以采用Scroll API和Search After等方式，分批获取数据，进一步提升并行处理能力。</p>
                    </div>
                </div>
            </div>
        </section>

        <!-- Other Strategies Section -->
        <section class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">其他查询优化策略</h2>
            </div>
            <div class="bg-white rounded-xl shadow-md overflow-hidden">
                <div class="md:flex">
                    <div class="md:w-1/3 bg-purple-800 text-white p-8">
                        <h3 class="text-2xl font-semibold mb-6">优化策略概览</h3>
                        <ul class="space-y-4">
                            <li class="flex items-center">
                                <i class="fas fa-memory mr-3"></i>
                                <span>查询缓存</span>
                            </li>
                            <li class="flex items-center">
                                <i class="fas fa-filter mr-3"></i>
                                <span>过滤器使用</span>
                            </li>
                            <li class="flex items-center">
                                <i class="fas fa-columns mr-3"></i>
                                <span>限制返回字段</span>
                            </li>
                            <li class="flex items-center">
                                <i class="fas fa-database mr-3"></i>
                                <span>索引设计优化</span>
                            </li>
                            <li class="flex items-center">
                                <i class="fas fa-chart-pie mr-3"></i>
                                <span>聚合优化</span>
                            </li>
                            <li class="flex items-center">
                                <i class="fas fa-layer-group mr-3"></i>
                                <span>索引模板与别名</span>
                            </li>
                        </ul>
                    </div>
                    <div class="md:w-2/3 p-8">
                        <div class="mb-8">
                            <h3 class="text-2xl font-semibold mb-4 flex items-center">
                                <i class="fas fa-memory text-purple-600 mr-3"></i>使用查询缓存
                            </h3>
                            <p class="text-gray-700 leading-relaxed mb-4">
                                Elasticsearch提供了查询缓存功能，用于存储频繁执行的查询结果，从而减少重复查询的开销。可以通过设置<code class="bg-gray-100 px-2 py-1 rounded">request_cache</code>来启用查询缓存，适用于读多写少的场景。
                            </p>
                            <div class="bg-gray-50 p-4 rounded-lg">
                                <h4 class="font-semibold text-gray-800 mb-2">注意事项</h4>
                                <p class="text-gray-700">
                                    缓存对于大规模数据和频繁更新的场景可能不太有效，因为更新会使缓存失效。合理选择需要缓存的查询非常重要。
                                </p>
                            </div>
                        </div>
                        <div>
                            <h3 class="text-2xl font-semibold mb-4 flex items-center">
                                <i class="fas fa-columns text-purple-600 mr-3"></i>限制返回字段
                            </h3>
                            <p class="text-gray-700 leading-relaxed mb-4">
                                在执行查询时，限制返回的字段可以减少数据传输量和解析时间。通过<code class="bg-gray-100 px-2 py-1 rounded">_source</code>参数，可以指定需要返回的字段，避免不必要的数据传输。尤其在大文档场景下，限制返回字段可以显著提高查询效率。
                            </p>
                            <div class="bg-purple-50 p-4 rounded-lg">
                                <h4 class="font-semibold text-purple-700 mb-2">示例代码</h4>
                                <pre class="bg-white p-3 rounded text-sm overflow-x-auto">GET /my_index/_search
{
  "_source": ["field1", "field2"],
  "query": {
    "match": {
      "field1": "value1"
    }
  }
}</pre>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- Performance Monitoring Section -->
        <section class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">性能监控与分析</h2>
            </div>
            <div class="bg-white rounded-xl shadow-md p-8 card-hover transition duration-300 mb-8">
                <p class="text-lg leading-relaxed">
                    在Elasticsearch中，性能监控与分析是确保集群稳定性和高效性的关键环节。通过有效的监控策略和工具，可以及时识别性能瓶颈，优化查询和索引操作，从而提升整体系统性能。
                </p>
            </div>
            <div class="grid md:grid-cols-3 gap-8">
                <div class="bg-white rounded-xl shadow-md overflow-hidden">
                    <div class="bg-purple-700 text-white p-6">
                        <h3 class="text-xl font-semibold flex items-center">
                            <i class="fas fa-heartbeat mr-3"></i>监控指标
                        </h3>
                    </div>
                    <div class="p-6">
                        <ul class="space-y-4">
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">集群健康状态</h4>
                                <p class="text-gray-700 text-sm">监控集群状态（绿色/黄色/红色）</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">节点资源使用</h4>
                                <p class="text-gray-700 text-sm">CPU、内存、磁盘I/O监控</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">查询性能</h4>
                                <p class="text-gray-700 text-sm">响应时间、失败率分析</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">索引性能</h4>
                                <p class="text-gray-700 text-sm">索引速率、刷新和合并操作</p>
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="bg-white rounded-xl shadow-md overflow-hidden">
                    <div class="bg-purple-700 text-white p-6">
                        <h3 class="text-xl font-semibold flex items-center">
                            <i class="fas fa-tools mr-3"></i>监控工具
                        </h3>
                    </div>
                    <div class="p-6">
                        <ul class="space-y-4">
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">Elasticsearch Monitoring</h4>
                                <p class="text-gray-700 text-sm">Kibana监控、X-Pack Monitoring</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">外部监控工具</h4>
                                <p class="text-gray-700 text-sm">Prometheus、Grafana、Elastic APM</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">日志分析</h4>
                                <p class="text-gray-700 text-sm">慢查询日志、系统错误日志</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">预警机制</h4>
                                <p class="text-gray-700 text-sm">阈值警报、自动化响应</p>
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="bg-white rounded-xl shadow-md overflow-hidden">
                    <div class="bg-purple-700 text-white p-6">
                        <h3 class="text-xl font-semibold flex items-center">
                            <i class="fas fa-chart-line mr-3"></i>性能优化
                        </h3>
                    </div>
                    <div class="p-6">
                        <ul class="space-y-4">
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">定期性能评估</h4>
                                <p class="text-gray-700 text-sm">基准测试、性能回归测试</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">动态调整配置</h4>
                                <p class="text-gray-700 text-sm">分片和副本数、索引设置</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">查询优化</h4>
                                <p class="text-gray-700 text-sm">使用过滤器、限制返回字段</p>
                            </li>
                            <li>
                                <h4 class="font-semibold text-gray-800 mb-1">集群扩展</h4>
                                <p class="text-gray-700 text-sm">根据负载扩展节点</p>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </section>

        <!-- Mermaid Diagram Section -->
        <section id="diagram" class="mb-20">
            <div class="flex items-center mb-8">
                <div class="h-1 bg-purple-600 rounded-full w-12"></div>
                <h2 class="text-3xl font-bold ml-4">ES查询优化策略关系图</h2>
            </div>
            <div class="bg-white rounded-xl shadow-md p-8">
                <div class="mermaid">
                    graph TD
                    A[ES查询优化策略] --> B[查询缓存]
                    A --> C[过滤器]
                    A --> D[并行查询]
                    A --> E[其他策略]
                    
                    B --> B1[查询结果缓存]
                    B --> B2[过滤器缓存]
                    B --> B3[字段数据缓存]
                    
                    C --> C1[布尔过滤器]
                    C --> C2[范围过滤器]
                    C --> C3[术语过滤器]
                    
                    D --> D1[请求分发]
                    D --> D2[并行执行]
                    D --> D3[结果聚合]
                    
                    E --> E1[限制返回字段]
                    E --> E2[索引优化]
                    E --> E3[聚合优化]
                    E --> E4[性能监控]
                </div>
            </div>
        </section>

        <!-- Summary Section -->
        <section class="mb-20">
            <div class="bg-gradient-to-r from-purple-600 to-blue-600 rounded-xl shadow-xl p-8 text-white">
                <h2 class="text-3xl font-bold mb-6">总结</h2>
                <div class="grid md:grid-cols-2 gap-8">
                    <div>
                        <h3 class="text-xl font-semibold mb-4 flex items-center">
                            <i class="fas fa-lightbulb mr-3"></i>关键要点
                        </h3>
                        <ul class="space-y-3">
                            <li class="flex items-start">
                                <i class="fas fa-check-circle mt-1 mr-2"></i>
                                <span>查询缓存能显著减少重复查询的开销</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-check-circle mt-1 mr-2"></i>
                                <span>过滤器比查询更高效，尤其适合严格匹配</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-check-circle mt-1 mr-2"></i>
                                <span>并行查询充分利用集群资源，提高吞吐量</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-check-circle mt-1 mr-2"></i>
                                <span>性能监控是持续优化的基础</span>
                            </li>
                        </ul>
                    </div>
                    <div>
                        <h3 class="text-xl font-semibold mb-4 flex items-center">
                            <i class="fas fa-road mr-3"></i>实施建议
                        </h3>
                        <ul class="space-y-3">
                            <li class="flex items-start">
                                <i class="fas fa-arrow-right mt-1 mr-2"></i>
                                <span>为高频查询启用缓存</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-arrow-right mt-1 mr-2"></i>
                                <span>尽可能使用过滤器替代查询</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-arrow-right mt-1 mr-2"></i>
                                <span>合理设置分片数量以优化并行查询</span>
                            </li>
                            <li class="flex items-start">
                                <i class="fas fa-arrow-right mt-1 mr-2"></i>
                                <span>建立全面的性能监控体系</span>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </section>
    </main>

    <!-- Footer -->
    <footer class="bg-gray-900 text-gray-300 py-12 px-4">
        <div class="container mx-auto max-w-6xl">
            <div class="flex flex-col md:flex-row justify-between items-center">
                <div class="mb-6 md:mb-0">
                    <h2 class="text-2xl font-bold text-white mb-2">技术小馆</h2>
                    <p class="text-gray-400">探索技术的无限可能</p>
                </div>
                <div>
                    <a href="http://www.yuque.com/jtostring" class="text-gray-300 hover:text-white transition duration-300 flex items-center">
                        <i class="fas fa-globe mr-2"></i> http://www.yuque.com/jtostring
                    </a>
                </div>
            </div>
            <div class="border-t border-gray-800 mt-8 pt-8 text-center">
                <p class="text-gray-500">© 2024 技术小馆. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script>
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            flowchart: {
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            }
        });
        
        // 平滑滚动
        document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function (e) {
                e.preventDefault();
                document.querySelector(this.getAttribute('href')).scrollIntoView({
                    behavior: 'smooth'
                });
            });
        });
    </script>
</body>
</html>